package com.tmxk.api.days03.lf;

/**
 * String     StringBuffer    StringBuilder  三者使用
 * 频繁操作(添加,删除,更新)字符串时,建议使用StringBuffer,效率高,内存占用率少
 * 跟String频繁操作字符串对比,该方式会频繁创建 新的空间,存储数据,效率低,内存占用率高,浪费内存空间
 * StringBuffer和StringBuilder对字符串是相同操作,
 * StringBuffer是线程安全的字符串扩展类,StringBuilder是线程非安全的字符串扩展类;
 * 常识:在项目中,频繁操作字符时,使用StringBuffer,处理数据效率高,内存占用率也少;
 *
 */
public class StringOperDemo {
    //成员变量,成员变量是存在在堆中
    String str = "abc";
    String str1 = "abc";
    String str2 = new String("abc");
    String str3 = new String("abc");

    StringBuffer sb1 = new StringBuffer("abc");
    StringBuffer sb2 = new StringBuffer("abc");
    public void stringMethod(){
        System.out.println(str == str1);  //true
        System.out.println(str == str2);  //false
        System.out.println(str2 == str3);  //false
        System.out.println(str2.intern() == str3.intern());  //true

        System.out.println("\n比较 str 和 str123结果");
        //concat() String 类型的追加方法

    }
    public static void main(String[] args) {
        //局部变量,局部变量是存在在栈中

    }
}
